yStart - Start menu for standard WB icons ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Introduction ------------ Like everybody who have to use Windows regularly, I saw day after day that the Amiga WB's way of starting programs, opening/closing drawers is often inefficient compared to the Start menu of Windows. I felt that the Amiga needs something similar. On the other hand, I never really liked launcher programs based on some kind of configuration, such as Win95's secondary shortcut hierarchy not to mention the many Start buttons on the Amiga requiring application presets. What is this redundant information for, when I already have a carefully created disk hierarchy, prepared for GUI use with Amiga's .info files? All I wanted is a better way to use them. It appears that I'm almost alone with this opinion. I waited patiently for a program like yStart, until I got the feeling that unless I write it myself, no such program will appear in this millennium. :-) (No, I don't like 2001, we should not propagate this 0-1 error through our entire history.) Requirements ------------ - AmigaOS 2 (V37) - 40k hd space and 30k of memory :) Installation ------------ Copy the yStart drawer anywhere you want. The program itself can also be dragged into WBStartup. Starting the program -------------------- yStart is a standalone executable that can be started from both CLI and WB. The CLI arguments and WB tooltypes are the same, as follows: - CX_POPKEY (string, defaults to "ctrl esc") Specifies the program's hotkey using standard string representation. - CX_PRIORITY (integer, defaults to 0) The commodity priority. - ICONMODE (OFF/ORIG/HALVED/LIMITY/LIMITXY, defaults to LIMITXY) Determines the way yStart displays icons. Possible values: - OFF No icon display, fastest mode. (Some icons are still loaded, e.g. to get the "show all" flag for drawers.) - ORIG Icons are displayed in original size. Line height varies. - HALVED Icons are displayed in half size. Line height varies. - LIMITY Icons are scaled down to fit within the text height of a line. - LIMITXY Icons are scaled down to fit within the text height of a line and a a preset horizontal space, whichever is narrower. This mode is almost as fast as the iconless mode, since the contents of the drawer can start to display without waiting for all icons to load. - ICONXYRATIO (integer, defaults to 280) The ratio between the width and height of the icon space in LIMITXY mode. Measured in percents (a value of 200 means the icon space is twice as wide as tall). There is an additional 1.5 times horizontal adjustment for screens with "tall dots". - PLACEMENT (TOP/BOTTOM, defaults to TOP) Determines whether the start button should be placed at the top or at the bottom of the screen. If an exact position is given with POSX/POSY, it still affects whether the the first level menu is dropped down or up. - POSX (integer, defaults to -1) The exact horizontal position of the start button. A value of -1 have no effect (position is determined by PLACEMENT). - POSY (integer, defaults to -1) The exact vertical position of the start button. A value of -1 have no effect (position is determined by PLACEMENT). - SELIMAGES (YES/NO, defaults to YES) Whether yStart should display highlighted images for selected items. - TIMEOPEN (integer, defaults to 600) The delay before auto-opening the selected drawer. Measured in milliseconds. - TIMECLOSE (integer, defaults to 600) The delay before auto-closing an unused drawer. Measured in milliseconds. - DEFAULTICONS (YES/NO, defaults to YES) Whether yStart should retrieve default icons for iconless entries in "show all" drawers. It is most useful if you are running a deficons-like patch. Or, as a minimum you may want to create a default project icon and set MultiView as its default tool. - FAKEMASK (integer, defaults to $55aa55aa) Default icons are grayed to indicate their "faked" nature. This 32 bit value determines the amount of graying. It is a 8*4 pixels mask (the most significant byte is the first row, and so on). Useful values could be $55aa55aa (50% graying) or $5500aa00 (75% graying), etc. - USERCMD (string, defaults to "") This is a CLI command that can be executed on any object you pick, extending the program's functionality with whatever you see fit. You can simply "multiview", or execute scripts, "rx rexx:myprog.rexx", present choices, etc. (Don't include quotes in WB tooltypes, unless you want them in the command string.) The command will be complemented with the object's name (ending with '/' in case of a drawer) and executed from the object's parent directory. It is mapped to the right mouse button. - UCFULLNAMES (YES/NO, defaults to NO) Include the full path in the object's name when executing an USERCMD. User interface -------------- yStart allows you to navigate through your disk and icon hierarchy just like Workbench does, but in an async loading dropdown menu based interface. There are three ways to operate the program: with the mouse, with the keyboard and as a commodity. Basic usage should be obvious, with the following options worth the mention: - clicking on the start button opens/closes the entire menu - staying over a drawer opens it after some (TIMEOPEN) delay - clicking on a drawer forces it to open instantly, without the delay - clicking on a project/tool launches it - clicking in another window closes the entire menu - pressing ESC closes one level of the menu - pressing ENTER forces to open a drawer or launches a project/tool - pressing SPACE launches a project/tool - holding down SHIFT when activating an item keeps the menu open - pressing UP/DOWN moves the cursor - pressing LEFT/RIGHT moves the cursor or opens/closes drawers - holding down ALT when opening a drawer forces it to "show all" mode - pressing the commodity hotkey pops up yStart with the first menu open - removing the commodity quits the program Delayed opening and closing of drawers is disabled during keyboard operation. Holding down SHIFT is only effective if the launched program does not immediately open and activate a window (which equals to clicking away from yStart). Holding down ALT only affects drawers opened by a mouseclick or by pressing ENTER, etc. It does not affect delayed auto-opening, although it is possible to use click / ALT+click on an opened drawer to toggle its forced "show all" status. Quitting yStart is only possible when there are no WB-mode launched programs left running. Programs with the CLI tooltype (or iconless programs from "show all" drawers) doesn't count. Technical notes --------------- In the OFF and LIMITXY modes yStart needs to rely on some guesses as there are no icons loaded before laying out and opening a window. If a .info file does not have a corresponding file or directory entry, it is assumed to be a tool/project (and not a drawer) icon. If yStart is started from CLI, the current path is used when searching for default tools. If it is started from WB, it copies the Workbench path. The entire program was written in Secal. Known issues ------------ On some Picasso cards the program stops at an internal safety check. This seems to be caused by the Picasso driver software: when scaling, it creates incorrect (one pixel wider than requested) images. Copyright --------- The yStart archive and all files it contains are copyright (c) 1999, 2000 Makrai József. All rights reserved. These files may not be distributed in any form other than this archive. Distribution ------------ Every project promises to be less work at first sight. yStart is no exception: it took me quite more work than I expected. For this reason, it is distributed as shareware. If you like it and use it, you should register. The reg fee is 2 euros :) (or equivalent amount in your local currency). Disclaimer ---------- The executable and documentation are provided "as-is", without warranty of any kind, either expressed or implied. All use is at your own risk. No liability or responsibility for incidential or consequential damages is assumed. Author ------ Name: Makrai József E-mail: tdsdev@matavnet.hu Address: Budapest 1041 Deák u. 67. fsz. 2. Hungary History ------- 1.0 (1999 Dec 22) * Initial release. 1.1 (2000 Oct 16) * Minor update from a lazy author. - Fixed a bug that caused "show all" drawers to contain double entries for files/drawers with icons (in nondefault ICONMODEs). + Added the ALT key option for opening drawers. 1.2 (2000 Dec 4) * Somewhat richer update. Just don't expect development to carry on at this rate. ;) - Fixed a pointer bug. (Harmless under normal Kickstarts, but caused trouble if exec's AllocVec was patched.) + Added support for OS3.5 icon.library extensions. + Added support for default icons. New options: DEFAULTICONS, FAKEMASK. + Added USERCMD and UCFULLNAMES options. + Minor changes.